qx.Class.define("caraffa.widgets.ABMTurno",
{
	extend : qx.ui.core.Widget,
	construct : function (dni_usuario, fecha_turno, hora_turno, cod_clinica)
	{
		this.base(arguments);
		this._dni_usuario = dni_usuario;
		this._fecha_turno = fecha_turno;
		this._hora_turno = hora_turno;
		this._hora_seleccionada = hora_turno.substr(0, 3);
		
		cod_clinica ? this.cod_clinica = cod_clinica : this.cod_clinica = 1;
		
		this._setLayout(new qx.ui.layout.VBox());
		this._grp1 = new qx.ui.groupbox.GroupBox();
//			this._grp1.setLayout(new qx.ui.layout.VBox(5));
			this._grp1.setLayout(new qx.ui.layout.Basic());

		var model = new qx.ui.table.model.Simple();
		model.setColumns(["Hora","Nombre","E", "Forma de Pago", "cod_turno", "Teléfono", "Hist. Clínica", "Motivo", "Origen", "Pertenece a", "usuario"]);
		model.setColumnSortable(0, false);
		model.setColumnSortable(1, false);
		model.setColumnSortable(2, false);
		model.setColumnSortable(3, false);
		model.setColumnSortable(4, false);
		model.setColumnSortable(5, false);
		model.setColumnSortable(6, false);
		model.setColumnSortable(7, false);
		model.setColumnSortable(8, false);
		
		this._grid = new qx.ui.table.Table(model);
			this._grid.setColumnWidth(0, 50);
			this._grid.setColumnWidth(1, 200);
			this._grid.setColumnWidth(2, 30);
			this._grid.setColumnWidth(3, 170);
			this._grid.setColumnWidth(5, 100);
			this._grid.setColumnWidth(6, 100);
			this._grid.setColumnWidth(7, 250);
			this._grid.setColumnWidth(8, 70);
			this._grid.setColumnWidth(9, 80);
			this._grid.setColumnWidth(10, 100);
			
			this._grid.setShowCellFocusIndicator(true);
			this._grid.setColumnVisibilityButtonVisible(false);
			this._grid.setWidth(900);
			this._grid.setHeight(165);
			this._grid.setStatusBarVisible(false);
			this._grid.getTableColumnModel().setColumnVisible(4, false);
			this._grid.getTableColumnModel().setDataCellRenderer(1, new qx.ui.table.cellrenderer.Html());
			this._grid.getTableColumnModel().setDataCellRenderer(2, new qx.ui.table.cellrenderer.Image(19, 16));
			this._grid.getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.cellrenderer.Html());
			this._grid.getTableColumnModel().setDataCellRenderer(4, new qx.ui.table.cellrenderer.Html());
			this._grid.getTableColumnModel().setDataCellRenderer(5, new qx.ui.table.cellrenderer.Html());
			this._grid.getTableColumnModel().setDataCellRenderer(6, new qx.ui.table.cellrenderer.Html());
      	
		//this._txtDNI = new qx.ui.form.ow.TextField("DNI:");
		this._txtDNI = new qx.ui.form.ow.ComboFind("DNI:");
//			this._txtDNI.getLabel().setWidth(70);
//			this._txtDNI.getText().setWidth(100);
		this._txtDNI.setRemoteData("pacientes", "getPacientes");
		
			this._lblPacienteNombre = new qx.ui.basic.Label("");
			this._lblPacienteNombre.setRich(true);
			this._btnPacienteDetalles = new qx.ui.form.Button("Ver Detalles");
			this._btnPacienteDetalles.exclude();
			this._btnAltaPaciente = new qx.ui.form.Button("Agregar");
			//this._btnAltaPaciente.hide();
			this._btnAltaPaciente.exclude();
			this._txtDNI.add(this._lblPacienteNombre);
			this._txtDNI.add(this._btnPacienteDetalles);
			this._txtDNI.add(this._btnAltaPaciente);
			
//			var app = this;
//			var rpcPacientes = new qx.io.remote.Rpc("services/", "pacientes");
//			rpcPacientes.setTimeout(10000);
//			rpcPacientes.callAsync(function (result, ex) {
//				app._txtDNI.setNewValues(result);
//			}, "getPacientes");
			
			
		this._txtMotivo = new qx.ui.form.ow.TextField("Motivo:");
//			this._txtMotivo.getLabel().setWidth(70);
//			this._txtMotivo.getText().setWidth(200);

//		this._cmbCirugia = new qx.ui.form.ow.ComboBox("Cirugia:", "", true);
//		this._getCirugias();

		this._cmbDeriva = new qx.ui.form.ow.ComboFilter("Medico Deriva:", "", true);
		this._lblApross = new qx.ui.basic.Label("<b>Apross T.D.: </b>");
		this._lblApross.setRich(true);
		
		this._grp2 = new qx.ui.groupbox.GroupBox();
			this._grp2.setLayout(new qx.ui.layout.HBox(20).set({alignX:"center"}));

		this._btnAceptar = new qx.ui.form.Button("Aceptar");
		this._btnCancelar = new qx.ui.form.Button("Cancelar");
		this._btnBloquear = new qx.ui.form.Button("Bloquear");
		
		this._grp2.add(this._btnAceptar);
		this._grp2.add(this._btnCancelar);
		this._grp2.add(this._btnBloquear);
		
		this._grp1.add(this._txtDNI, {left:40, top:0});
		this._grp1.add(this._txtMotivo, {left:40, top:35});
		this._grp1.add(this._cmbDeriva, {left:40, top:65});
		this._grp1.add(this._lblApross, {left:400, top:65});
//		this._grp1.add(this._cmbCirugia, {left:40, top:60});
		this._grp1.add(this._grid, {left:0, top:95});
		this._grp1.add(this._grp2, {left:300, top:265});
//		this._grp1.add(this._grp3, {left:0, top:280});

		this._add(this._grp1);

//		this._txtDNI.getText().addListener("focusin", this._txtDNI_focusin, this);
//		this._txtDNI.getText().addListener("focusout", this._buscar_dni, this);
		this._txtDNI.getCombo().addListener("changeValue", this._txtDNI_focusin, this);
		this._txtDNI.getCombo().addListener("focusin", this._txtDNI_focusin, this);
		this._txtDNI.getCombo().addListener("focusout", this._buscar_dni, this);
		this._btnAltaPaciente.addListener("execute", function (e) 
		{
			var win = new qx.ui.window.Window("ABM de Pacientes");
			win.addListener("resize", win.center, win);
			win.setLayout(new qx.ui.layout.VBox(10));
			win.setShowStatusbar(false);
			
			var ABMPacientes = caraffa.widgets.ABMMaestros.getABMPacientes();
//			ABMPacientes.addListener("insert", function (e) {
//				var rpc = new qx.io.remote.Rpc();
//				rpc.setTimeout(10000);
//				rpc.setUrl(caraffa.Funciones.rpcRemoto);
//				rpc.setCrossDomain(true);
//				rpc.setServiceName("ABMPacientes");
//				
//				var app = this;
//		        rpc.callAsync(function (result, ex, id) {
//		        	if (ex == null) {
//		        		return true;
//		        	} else {
//		        		alert(ex);
//		        	}
//		        },"opAlta", e.getData());
//			}, this);
				
			win.add(ABMPacientes);
			win.open();
			win.setModal(true);
//			win.addListener("close", function () { this._txtDNI.focus() }, this);
			win.addListener("close", function () { this._txtDNI.getCombo().focus() }, this);
		}, this);
		this._btnPacienteDetalles.addListener("execute", this._paciente_detalles, this);
		this._btnAceptar.addListener("execute", this._agregar_paciente, this);
		this._btnCancelar.addListener("execute", this._cancelar_turno, this);
		this._btnBloquear.addListener("execute", this._bloquear_turno, this);
		
		this._grid.addListener("dblclick", function (e)
		{
			if (this._grid.getTableModel().getValue(2, this._grid.getFocusedRow()) != 'caraffa/cruz.png')
			{
				if ((this._grid.getTableModel().getValue(4, this._grid.getFocusedRow())) && (this._grid.getTableModel().getValue(2, this._grid.getFocusedRow()) != 'caraffa/atendido.png'))
				{
					if (caraffa.Funciones.remoto != "caraffa") {
//						var formaPago = new caraffa.widgets.ABMFormaPago(this._grid.getTableModel().getValue(4, this._grid.getFocusedRow()), true);
						alert("No puede realizar el Check-In Remotamente.");
					} else {
						var formaPago = new caraffa.widgets.ABMFormaPago(this._grid.getTableModel().getValue(4, this._grid.getFocusedRow()));
						formaPago.addListener("resize", formaPago.center, formaPago);
						formaPago.addListener("close", this._initWidget, this);
					}
				}
			}
		}, this);
		
		this._grid.addListener("keyup", function (e)
		{
			if ((e.getKeyIdentifier() == 'Up') || (e.getKeyIdentifier() == 'Down'))
			{
				this._checkAtendido();
			}
			else
			{
				if ((e.getKeyIdentifier() == 'Enter') && (this._grid.getTableModel().getValue(2, this._grid.getFocusedRow()) != 'caraffa/cruz.png'))
				{
					if ((this._grid.getTableModel().getValue(4, this._grid.getFocusedRow())) && (this._grid.getTableModel().getValue(2, this._grid.getFocusedRow()) != 'caraffa/atendido.png'))
					{
						var formaPago = new caraffa.widgets.ABMFormaPago(this._grid.getTableModel().getValue(4, this._grid.getFocusedRow()));
						formaPago.addListener("resize", formaPago.center, formaPago);
						formaPago.addListener("close", this._initWidget, this);
					}
				}
				else
				{
					if (e.getKeyIdentifier() == 'Enter')
					{
						alert("No puede asignar turnos en este dia y hora, ya que el medico no se encuentra disponible");
					}
				}
			}
			
		}, this);

		this._grid.addListener("click", this._checkAtendido, this);
		
		var app = this;
		var rpc = new qx.io.remote.Rpc();
		rpc.setTimeout(10000);
		rpc.setUrl(caraffa.Funciones.rpcLocal);
        rpc.setServiceName("turnos");
        rpc.callAsync(function (result, ex, id) {
        	if (ex == null) {
        		for (var i in result) {
					app._cmbDeriva.addValue({value:result[i].dni_usuario, label:result[i].apeynom});
				}
        	} else {
        		alert(ex);
        	}
        },"getMedicos");
		
		this._initWidget();
	},
	members :
	{
		_dni_usuario : null,
		_fecha_turno : null,
		_hora_turno : null,
		_hora_seleccionada : null,
		_min_turno : null,
		_grp1 : null,
		_grp2 : null,
		_grid : null,
		_txtDNI : null,
		_lblPacienteNombre:null,
		_btnPacienteDetalles:null,
		_btnAltaPaciente : null,
		_txtMotivo : null,
		_cmbDeriva : null,
		_lblApross : null,
		_btnAceptar : null,
		_btnCancelar : null,
		_btnBloquear : null,
		_initWidget : function ()
		{
//			this._grp3.hide();
			this._btnAceptar.setEnabled(true);
			this._btnCancelar.setEnabled(true);
			this._btnBloquear.setEnabled(true);
			this._btnBloquear.setLabel("Bloquear");
			this._getDataToGrid();
			this._txtDNI.setValue("");
			this._lblPacienteNombre.setValue("");
			this._txtMotivo.setValue("");
			this._cmbDeriva.setValue("");
//			this._cmbCirugia.setValue("");
			this._grid.resetSelection();
			this._grid.resetCellFocus();
			//this._txtDNI.focus();
			
			
			//apross T.D.
			
			//RPC
			this.rpcApross = new qx.io.remote.Rpc();
			this.rpcApross.setTimeout(10000);
			this.rpcApross.setUrl("services/");
			this.rpcApross.setServiceName("turnos");

			try{
				var params = new Object();
					params.dni_usuario = this._dni_usuario
					params.fecha = this._fecha_turno 
				var resAprossTD = this.rpcApross.callSync("getAprossTD", params);
				this._lblApross.setValue("<b>Apross T.D.: <big>"+resAprossTD+"</big></b>");
			}
			catch (ex){
				alert(ex);
			}
			
			
		},
		_getCirugias : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
//			rpc.setUrl("services/");
			if (caraffa.Funciones.remoto != "caraffa") {
				rpc.setUrl(caraffa.Funciones.rpcRemoto);
				rpc.setCrossDomain(true);
			} else {
				rpc.setUrl(caraffa.Funciones.rpcLocal);
			}
			rpc.setServiceName("ABMPrestaciones");
			
			var app = this;
	        rpc.callAsync(function (result, ex, id) {
	        	if (ex == null) {
	        		app._cmbCirugia.setNewValues(result, true);
	        	} else {
	        		alert(ex);
	        	}
	        },"getCirugias");
//			try
//			{
//				var result = rpc.callSync("getCirugias");
//				this._cmbCirugia.setNewValues(result, true);
//			}
//			catch (ex)
//			{
//				alert(ex);
//			}
		},
		_checkAtendido : function ()
		{
			if (this._grid.getFocusedRow() != null)
			{
				switch (this._grid.getTableModel().getValue(2, this._grid.getFocusedRow()))
				{
					case 'caraffa/atendido.png' : this._btnCancelar.setEnabled(false); this._btnBloquear.setEnabled(false); break;
					case 'caraffa/cruz.png' : this._btnAceptar.setEnabled(false); this._btnCancelar.setEnabled(false); this._btnBloquear.setEnabled(true); this._btnBloquear.setLabel("Desbloquear"); break;
					default : this._btnAceptar.setEnabled(true); this._btnCancelar.setEnabled(true); this._btnBloquear.setEnabled(true); this._btnBloquear.setLabel("Bloquear"); break;
				}
			}
		},
		_diaFecha : function(fecha)
		{
			var day = fecha.substr(0,2);
			var month = fecha.substr(3,2);
			var year = fecha.substr(6,4);
			var oyear=year
			var wyear="";
			var wrelyear="";
			
			var dob = " "+ year +", "+month + ",  "+day;
			var thenx = new Date(dob);
			
			var year=thenx.getYear();
			if (year<100) year="19" + thenx.getYear();
			else year=thenx.getYear();
			
			if (year > 1969) wyear=year;
			else {
			if (oyear<1900) {
			if (oyear>1800) {
			wrelyear= (eval(oyear)-1801)%(28);
			wyear = wrelyear+1981;
			}
			else wyear = 1970 
			}
			else
			if (oyear>1900) {wrelyear= (eval(oyear)-1901)%(28); 
			wyear= wrelyear+1985
			}
			else 
			if (oyear==1900) {wyear= 1990;
			   }              
			}
			var dob = " "+ wyear +", "+month + ",  "+day;
			var thenx = new Date(dob);
			
			var theday = thenx.getDay()+1;
			var date=thenx.getDate();
			
			var weekday = new Array(6);

			weekday[1]="Domingo";
			weekday[2]="Lunes";
			weekday[3]="Martes";
			weekday[4]="Miércoles";
			weekday[5]="Jueves";
			weekday[6]="Viernes";
			weekday[7]="Sábado";
	
			return theday;
			//dayborn = weekday[theday];
			//dob = dayborn;
			//alert(dob);
		},
		_getDataToGrid : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			if (caraffa.Funciones.remoto != "caraffa") {
				rpc.setUrl(caraffa.Funciones.rpcRemoto);
				rpc.setCrossDomain(true);
			} else {
				rpc.setUrl(caraffa.Funciones.rpcLocal);
			}
			rpc.setServiceName("turnos");
//			try
//			{
//				var json = rpc.callSync("getTurnosHoraMedico", this._dni_usuario, this._fecha_turno, this._hora_turno);
//			}
//			catch (ex)
//			{
//				alert(ex);
//			}
//			alert(qx.util.Json.stringify(json));
			
			var app = this;
	        rpc.callAsync(function (json, ex, id) {
	        	if (ex == null) {
	        		var horas = new Array();
					var j = 0;
					var horaControl = 0;
					app._min_turno = json.min_turno;
					for (var i=0; i<60; i++)
					{
						var row = new Array();
						var time = "";
						var ban = false;
						if (0 == (i % json.min_turno))
						{
							if (i <= 9)
							{
								var time = app._hora_seleccionada + "0" + i;
								row.push(time);
								horaControl = parseInt(time.substr(1, 1) + time.substr(3, 2));
							}
							else
							{
								var time = app._hora_seleccionada + i;
								row.push(time);
							}
							
							if (parseInt(app._hora_seleccionada.substr(0,2)) < 9)
							{
								horaControl = parseInt(time.substr(1, 1) + time.substr(3, 2));
							}
							else
							{
								horaControl = parseInt(time.substr(0, 2) + time.substr(3, 2));
							}
		
							var lenght = (json.agenda.length);
							var ban = true;
							for (var h = 0; h < lenght; h++)
							{
		//						alert(json.agenda[h].hora_desde + " - " + horaControl + " - " + json.agenda[h].hora_hasta + " - " + json.agenda[h].tipo);
								if ((json.agenda[h].hora_desde <= horaControl) && (horaControl <= json.agenda[h].hora_hasta) && (json.agenda[h].tipo == 'L'))
								{
		//							if (json.agenda[h]["d" + this._diaFecha(this._fecha_turno.substr(0,2), this._fecha_turno.substr(3,2), this._fecha_turno.substr(6,2))] == '1')
									if (json.agenda[h]["d" + app._diaFecha(app._fecha_turno)] == '1')
									{
										ban = false;
									}
								}
								else
								{
									if ((json.agenda[h].hora_desde <= horaControl) && (horaControl < json.agenda[h].hora_hasta) && (json.agenda[h].tipo == 'N'))
									{
		//								if (json.agenda[h]["d" + this._diaFecha(this._fecha_turno.substr(0,2), this._fecha_turno.substr(3,2), this._fecha_turno.substr(6,2))] == '1')
										if (json.agenda[h]["d" + app._diaFecha(app._fecha_turno)] == '1')
										{
											ban = true;
											break;
										}
									}
								}
							}
		//					alert(this._fecha_turno);
						}
						if (ban)
						{
							row.push("<center><img src='resource/caraffa/cruz.png' /></center>");
							row.push("caraffa/cruz.png");
							row.push("<center><img src='resource/caraffa/cruz.png' /></center>");
							row.push("<center><img src='resource/caraffa/cruz.png' /></center>");
							horas.push(row);
						}
						else
						{
							if (json.pacientes[j])
							{
								if (i == parseInt(json.pacientes[j].hora_asignada.substr(3,2)))
								{
									if (0 != (i % json.min_turno))
									{
										if (i <= 9)
										{
											var time = app._hora_seleccionada + "0" + i;
											row.push(time);
										}
										else
										{
											var time = app._hora_seleccionada + i;
											row.push(time);
										}
									}
									switch (json.pacientes[j].estado)
									{
										case 'N' : var imgEstado = "caraffa/nuevo.png"; break;
										case 'E' : var imgEstado = "caraffa/espera.png"; break;
										case 'A' : var imgEstado = "caraffa/atendido.png"; break;
										default : var imgEstado = ""; break;
									}
									row.push(json.pacientes[j].apeynom);
									row.push(imgEstado);
									row.push(json.pacientes[j].forma_pago);
									row.push(json.pacientes[j].cod_turno);
									row.push(json.pacientes[j].telefono1);
									row.push(json.pacientes[j].nro_historia_clinica);							
									row.push(json.pacientes[j].motivo);
									row.push(json.pacientes[j].origen);
									row.push(json.pacientes[j].pertenece);
									row.push(json.pacientes[j].usuario);
									horas.push(row);
									j++;
									if (json.pacientes[j])
									{
										while (i == parseInt(json.pacientes[j].hora_asignada.substr(3,2)))
										{
											var row = new Array();
											if (0 != (i % json.min_turno))
											{
												if (i <= 9)
												{
													var time = app._hora_seleccionada + "0" + i;
													row.push(time);
												}
												else
												{
													var time = app._hora_seleccionada + i;
													row.push(time);
												}
											}
											switch (json.pacientes[j].estado)
											{
												case 'N' : var imgEstado = "caraffa/nuevo.png"; break;
												case 'E' : var imgEstado = "caraffa/espera.png"; break;
												case 'A' : var imgEstado = "caraffa/atendido.png"; break;
												default : var imgEstado = ""; break;
											}
											row.push(time);
											row.push(json.pacientes[j].apeynom);
											row.push(imgEstado);
											row.push(json.pacientes[j].forma_pago);
											row.push(json.pacientes[j].cod_turno);
											row.push(json.pacientes[j].telefono1);
											row.push(json.pacientes[j].nro_historia_clinica);
											row.push(json.pacientes[j].motivo);
											row.push(json.pacientes[j].origen);
											row.push(json.pacientes[j].pertenece);
											row.push(json.pacientes[j].usuario);
											horas.push(row);
											j++;
											if (!json.pacientes[j])
											{
												break;
											}
										}
									}
								}
								else
								{
									if (0 == (i % json.min_turno))
									{
										row.push("");
										row.push("");
										row.push("");
										row.push("");
										row.push("");
										row.push("");
										horas.push(row);
									}
								}
							}
							else
							{
								if (0 == (i % json.min_turno))
								{
									row.push("");
									row.push("");
									row.push("");
									row.push("");
									row.push("");
									row.push("");
									horas.push(row);
								}
							}
						}
					}
	        	} else {
	        		alert(ex);
	        	}
	        	app._grid.getTableModel().setData(horas);
	        }, "getTurnosHoraMedico", this._dni_usuario, this._fecha_turno, this._hora_turno, this.cod_clinica);
	        
			
//			this._grid.getTableModel().setData(horas);
		},
		_buscar_dni : function (e)
		{
			if (this._txtDNI.getValue() != '')
			{
				var rpc = new qx.io.remote.Rpc();
				rpc.setTimeout(10000);
				rpc.setUrl("services/");
//				if (caraffa.Funciones.remoto != "caraffa") {
//					rpc.setUrl(caraffa.Funciones.rpcRemoto);
//					rpc.setCrossDomain(true);
//				} else {
					rpc.setUrl(caraffa.Funciones.rpcLocal);
//				}
				rpc.setServiceName("pacientes");
				
				var app = this;
				rpc.callAsync(function (result, ex, id) {
		        	if (ex == null) {
		        		if (!result) {
							app._btnAltaPaciente.show();
							app._lblPacienteNombre.exclude();
							app._btnPacienteDetalles.exclude();
						} else {
							app._lblPacienteNombre.setValue("  " + result.nombre);
							app._btnAltaPaciente.exclude();
							app._lblPacienteNombre.show();
							app._btnPacienteDetalles.show();
						}
		        	} else {
		        		alert(ex);
		        	}
	        	}, "existePaciente", this._txtDNI.getValue());
	        	
//				try	{
//					var result = rpc.callSync("existePaciente", this._txtDNI.getValue());
//					if (!result)
//					{
//						this._btnAltaPaciente.show();
//						this._lblPacienteNombre.exclude();
//						this._btnPacienteDetalles.exclude();
//					}
//					else
//					{
//					this._lblPacienteNombre.setValue("  " + result.nombre);
//					this._btnAltaPaciente.exclude();
//					this._lblPacienteNombre.show();
//					this._btnPacienteDetalles.show();
//					}
//				} catch (ex) {
//					alert(ex);
//				}
			}
		},
		_txtDNI_focusin : function (e)
		{
			//this._btnAltaPaciente.hide();
			this._btnAltaPaciente.exclude();
		},
		_agregar_paciente : function (e)
		{
			if (this._grid.getTableModel().getValue(2, this._grid.getFocusedRow()) != "<center><img src='resource/caraffa/cruz.png' /></center>")
			{
				if (this._txtDNI.getValue() != "")
				{
					if (this._btnAltaPaciente.isHidden())
					{
						if (this._grid.getSelectionModel().getSelectedCount())
						{
							if (this._grid.getTableModel().getValue(4, this._grid.getFocusedRow()))
							{
								if (confirm("Esta por agregar un entreturno. Desea continuar?"))
								{
									var rpc = new qx.io.remote.Rpc();
									rpc.setTimeout(10000);
//									rpc.setUrl("services/");
//									if (caraffa.Funciones.remoto != "caraffa") {
//										rpc.setUrl(caraffa.Funciones.rpcRemoto);
//										rpc.setCrossDomain(true);
//									} else {
										rpc.setUrl(caraffa.Funciones.rpcLocal);
//									}
									rpc.setServiceName("turnos");
//									try
//									{
//										var result = rpc.callSync("altaTurno", this._dni_usuario, this._txtDNI.getValue(), this._txtMotivo.getValue(), this._fecha_turno, this._grid.getTableModel().getValue(0, this._grid.getFocusedRow()), "S");
//										this._initWidget();
//									}
//									catch (ex)
//									{
//										alert(ex);
//									}
									var app = this;
									var p = {};
									p.cod_clinica = this.cod_clinica;
									p.dni_usuario = this._dni_usuario;
									p.dni_paciente = this._txtDNI.getValue(); 
									p.motivo = this._txtMotivo.getValue();
									p.deriva = this._cmbDeriva.getValue();
									p.fecha_asignada = this._fecha_turno; 
									p.hora_asignada = this._grid.getTableModel().getValue(0, this._grid.getFocusedRow());
									p.entreturno = "S";
									rpc.callAsync(function (result, ex, id) {
							        	if (ex == null) {
							        		app._initWidget();
							        	} else {
							        		alert(ex);
							        	}
									}, "altaTurno", p);
//							        }, "altaTurno", this._dni_usuario, this._txtDNI.getValue(), this._txtMotivo.getValue(), this._fecha_turno, this._grid.getTableModel().getValue(0, this._grid.getFocusedRow()), "S");
								}
							}
							else
							{
								var rpc = new qx.io.remote.Rpc();
								rpc.setTimeout(10000);
//								rpc.setUrl("services/");
//								if (caraffa.Funciones.remoto != "caraffa") {
//									rpc.setUrl(caraffa.Funciones.rpcRemoto);
//									rpc.setCrossDomain(true);
//								} else {
									rpc.setUrl(caraffa.Funciones.rpcLocal);
//								}
								rpc.setServiceName("turnos");
//								try
//								{
//									var result = rpc.callSync("altaTurno", this._dni_usuario, this._txtDNI.getValue(), this._txtMotivo.getValue(), this._fecha_turno, this._grid.getTableModel().getValue(0, this._grid.getFocusedRow()), "N");
//									this._initWidget();
//								}
//								catch (ex)
//								{
//									alert(ex);
//								}
								var app = this;
								var p = {};
								p.cod_clinica = this.cod_clinica;
								p.dni_usuario = this._dni_usuario;
								p.dni_paciente = this._txtDNI.getValue(); 
								p.motivo = this._txtMotivo.getValue();
								p.deriva = this._cmbDeriva.getValue();
								p.fecha_asignada = this._fecha_turno; 
								p.hora_asignada = this._grid.getTableModel().getValue(0, this._grid.getFocusedRow());
								p.entreturno = "N";
						        rpc.callAsync(function (result, ex, id) {
						        	if (ex == null) {
						        		app._initWidget();
						        	} else {
						        		alert(ex);
						        	}
						        }, "altaTurno", p);
//						        }, "altaTurno", this._dni_usuario, this._txtDNI.getValue(), this._txtMotivo.getValue(), this._fecha_turno, this._grid.getTableModel().getValue(0, this._grid.getFocusedRow()), "N");
							}
						}
						else
						{
							alert("Debe seleccionar el horario donde agregara el turno.");
						}
					}
					else
					{
						alert("El paciente no existe. Debe agregarlo para asignar el turno.");
					}
				}
				else
				{
					alert("No ingreso el DNI del paciente");
				}
			}
			else
			{
				alert("No puede asignar turnos en este dia y hora, ya que el medico no se encuentra disponible");
			}
		},
		_cancelar_turno : function ()
		{
			if (this._grid.getSelectionModel().getSelectedCount())
			{
				if (this._grid.getTableModel().getValue(4, this._grid.getFocusedRow()))
				{
					if (confirm("Esta seguro que desea cancelar el turno seleccionado?"))
					{
						var rpc = new qx.io.remote.Rpc();
						rpc.setTimeout(10000);
//						rpc.setUrl("services/");
						if (caraffa.Funciones.remoto != "caraffa") {
							rpc.setUrl(caraffa.Funciones.rpcRemoto);
							rpc.setCrossDomain(true);
						} else {
							rpc.setUrl(caraffa.Funciones.rpcLocal);
						}
						rpc.setServiceName("turnos");
//						try
//						{
//							var result = rpc.callSync("cancelaTurno", this._grid.getTableModel().getValue(4, this._grid.getFocusedRow()));
//							this._initWidget();
//						}
//						catch (ex)
//						{
//							alert(ex);
//						}
						var app = this;
				        rpc.callAsync(function (result, ex, id) {
				        	if (ex == null) {
				        		app._initWidget();
				        	} else {
				        		alert(ex);
				        	}
				        }, "cancelaTurno", this._grid.getTableModel().getValue(4, this._grid.getFocusedRow()));
					}
				}
				else
				{
					alert("Este turno no se encuentra asignado.");
				}
			}
			else
			{
				alert("Debe seleccionar el turno que desea cancelar");
			}
		},
		_paciente_detalles: function(){
			
			// RPC
			this.rpcDetalles = new qx.io.remote.Rpc();
			this.rpcDetalles.setTimeout(10000);
//			this.rpcDetalles.setUrl("services/");
			if (caraffa.Funciones.remoto != "caraffa") {
				this.rpcDetalles.setUrl(caraffa.Funciones.rpcRemoto);
				this.rpcDetalles.setCrossDomain(true);
			} else {
				this.rpcDetalles.setUrl(caraffa.Funciones.rpcLocal);
			}
			this.rpcDetalles.setServiceName("pacientes");
			this.paramsDetalle = new Object();
			this.paramsDetalle.dni = this._txtDNI.getValue();
//			try{
//				this.resDetalles = this.rpcDetalles.callSync("detallesPaciente", this.paramsDetalle);
//			}
//			catch(ex){
//				alert("Error: " + ex);
//			}
			var app = this;
	        this.rpcDetalles.callAsync(function (result, ex, id) {
	        	if (ex == null) {
	        		app.win2 = new qx.ui.window.Window("Detalles Paciente");
					app.win2.setWidth(380);
					app.win2.setHeight(500);
					app.win2.setResizable(false);
					app.win2.moveTo(700,50);
					app.win2.setLayout(new qx.ui.layout.VBox(20));
					app.win2.setShowStatusbar(false);
						app.txaDetalle1 = new qx.ui.form.ow.TextArea("<b>PLAN1</b>: "+ result.obraSocial1 +", "+ result.plan1);
						app.txaDetalle1.getLabel().setWidth(350);
						app.txaDetalle1.getText().setHeight(200);
						app.txaDetalle1.setValue(result.detalles1);
						app.txaDetalle1.getText().setReadOnly(true);
						
						app.txaDetalle2 = new qx.ui.form.ow.TextArea("<b>PLAN2</b>: "+ result.obraSocial2 +", "+ result.plan2);
						app.txaDetalle2.getLabel().setWidth(350);
						app.txaDetalle2.getText().setHeight(200);
						app.txaDetalle2.setValue(result.detalles2);
						app.txaDetalle2.getText().setReadOnly(true);
						
						app.btnCerrar = new qx.ui.form.Button("Cerrar");
						app.btnCerrar.addListener("execute", function(){ app.win2.close()},app);
					app.win2.add(app.txaDetalle1);
					app.win2.add(app.txaDetalle2);
					app.win2.add(app.btnCerrar);
					app.win2.open();
					app.win2.setModal(true);
	        	} else {
	        		alert(ex);
	        	}
	        }, "detallesPaciente", this.paramsDetalle);
		},
		_bloquear_turno : function ()
		{
			if (this._grid.getSelectionModel().getSelectedCount())
			{
				var params = new Object();
				params.hora = this._grid.getTableModel().getValue(0, this._grid.getFocusedRow());
				params.fecha = this._fecha_turno;
				params.dia = this._diaFecha(this._fecha_turno);
				params.medico = this._dni_usuario;
				params.rango = "00:" + this._min_turno;
				params.cod_clinica = this.cod_clinica;
				switch (this._grid.getTableModel().getValue(4, this._grid.getFocusedRow()))
				{
					case "":
					{
						params.accion = "vacio";
						break;
					}
					case "<center><img src='resource/caraffa/cruz.png' /></center>":
					{
						params.accion = "desbloquear";
						break;
					}
					default :
					{
						params.accion = "pacientes";
						break;
					}
				}
				if (params.accion == "pacientes")
				{
					if (confirm("Esta por bloquear un turno donde se encuentran un pacientes. Desea continuar?"))
					{
						var sigue = true;
					}
					else
					{
						var sigue = false;
					}
				}
				else
				{
					var sigue = true;
				}
				if (sigue)
				{
					var rpc = new qx.io.remote.Rpc();
					rpc.setTimeout(10000);
//					rpc.setUrl("services/");
					if (caraffa.Funciones.remoto != "caraffa") {
						rpc.setUrl(caraffa.Funciones.rpcRemoto);
						rpc.setCrossDomain(true);
					} else {
						rpc.setUrl(caraffa.Funciones.rpcLocal);
					}
					rpc.setServiceName("turnos");
//					try
//					{
//						var result = rpc.callSync("bloquearHoraMedico", params);
//						this._initWidget();
//					}
//					catch (ex)
//					{
//						alert(ex);
//					}
					var app = this;
			        rpc.callAsync(function (result, ex, id) {
			        	if (ex == null) {
			        		app._initWidget();
			        	} else {
			        		alert(ex);
			        	}
			        }, "bloquearHoraMedico", params);
				}
			}
			else
			{
				alert("Debe seleccionar el turno que desea bloquear");
			}
		}
	}
});
